home *** CD-ROM | disk | FTP | other *** search
- #Authors: Oded Sudarski and Ramon Chemel
-
- seat_mesh = LIST(LIST( CTLPT(E3, -0.1925, 0.0150, 0.0275),
- CTLPT(E3, -0.1800, 0.0000, 0.0300),
- CTLPT(E3, -0.1600, -0.0300, 0.0000),
- CTLPT(E3, 0.1600, -0.0300, 0.0000),
- CTLPT(E3, 0.1800, 0.0000, 0.0300),
- CTLPT(E3, 0.1925, 0.0150, 0.0275)),
- LIST( CTLPT(E3, -0.2050, 0.0300, 0.0550),
- CTLPT(E3, -0.2000, 0.0300, 0.0600),
- CTLPT(E3, -0.1500, 0.0000, 0.0300),
- CTLPT(E3, 0.1500, 0.0000, 0.0300),
- CTLPT(E3, 0.2000, 0.0300, 0.0600),
- CTLPT(E3, 0.2050, 0.0300, 0.0550)),
- LIST( CTLPT(E3, -0.2050, 0.3700, 0.0950),
- CTLPT(E3, -0.2000, 0.3700, 0.1000),
- CTLPT(E3, -0.1400, 0.3700, 0.0200),
- CTLPT(E3, 0.1400, 0.3700, 0.0200),
- CTLPT(E3, 0.2000, 0.3700, 0.1000),
- CTLPT(E3, 0.2050, 0.3700, 0.0950)),
- LIST( CTLPT(E3, -0.2050, 0.3850, 0.1100),
- CTLPT(E3, -0.2000, 0.3800, 0.1100),
- CTLPT(E3, -0.1400, 0.4500, 0.1100),
- CTLPT(E3, 0.1400, 0.4500, 0.1100),
- CTLPT(E3, 0.2000, 0.3800, 0.1100),
- CTLPT(E3, 0.2050, 0.3850, 0.1100)),
- LIST( CTLPT(E3, -0.1950, 0.4750, 0.4000),
- CTLPT(E3, -0.1900, 0.4700, 0.4000),
- CTLPT(E3, -0.1400, 0.4800, 0.4500),
- CTLPT(E3, 0.1400, 0.4800, 0.4500),
- CTLPT(E3, 0.1900, 0.4700, 0.4000),
- CTLPT(E3, 0.1950, 0.4750, 0.4000)),
- LIST( CTLPT(E3, -0.1825, 0.4825, 0.4125),
- CTLPT(E3, -0.1700, 0.4900, 0.4250),
- CTLPT(E3, -0.1500, 0.5100, 0.4500),
- CTLPT(E3, 0.1500, 0.5100, 0.4500),
- CTLPT(E3, 0.1700, 0.4900, 0.4250),
- CTLPT(E3, 0.1825, 0.4825, 0.4125)));
-
- front_surface = SBSPLINE(3, 3, seat_mesh, LIST(LIST(KV_OPEN), LIST(KV_OPEN)));
- back_surface = OFFSET(front_surface, 0.003, 1.0, off);
- side1 = RULEDSRF(CSURFACE(back_surface, ROW, 0),
- CSURFACE(front_surface, ROW, 0));
- side2 = RULEDSRF(CSURFACE(back_surface, COL, 0),
- CSURFACE(front_surface, COL, 0));
- side3 = RULEDSRF(CSURFACE(back_surface, ROW, 4),
- CSURFACE(front_surface, ROW, 4));
- side4 = RULEDSRF(CSURFACE(back_surface, COL, 4),
- CSURFACE(front_surface, COL, 4));
-
- ellipse = TRANS(VECTOR(0.0, 0.0, 0.06)) *
- CBEZIER(LIST( CTLPT(E3, 0.00, 0.00, 0.02),
- CTLPT(E3, 0.13, 0.00, 0.02),
- CTLPT(E3, 0.13, 0.00, 0.00),
- CTLPT(E3, 0.13, 0.00, -0.02),
- CTLPT(E3, 0.00, 0.00, -0.02),
- CTLPT(E3, -0.13, 0.00, -0.02),
- CTLPT(E3, -0.13, 0.00, 0.00),
- CTLPT(E3, -0.13, 0.00, 0.02),
- CTLPT(E3, 0.00, 0.00, 0.02)));
-
- oval_cylinder = EXTRUDE(ellipse, VECTOR(0.0, 0.6, 0.0));
- front_surface = convex(front_surface / oval_cylinder);
- back_surface = convex(back_surface / oval_cylinder);
- seat = LIST(back_surface, front_surface, side1, side2, side3, side4);
- COLOR(seat, YELLOW);
-
- legs_list = LIST(CTLPT(E3, -0.220, 0.000, -0.400),
- CTLPT(E3, -0.220, 0.034, -0.065),
- CTLPT(E3, -0.220, 0.046, 0.045),
- CTLPT(E3, -0.220, 0.188, 0.045),
- CTLPT(E3, -0.220, 0.330, 0.045),
- CTLPT(E3, -0.220, 0.360, -0.065),
- CTLPT(E3, -0.220, 0.450, -0.400));
- legs_curve = CBSPLINE(3, legs_list, LIST(KV_OPEN));
- square = CBSPLINE(2,
- LIST( CTLPT(E3, -0.01, -0.01, 0.00),
- CTLPT(E3, 0.01, -0.01, 0.00),
- CTLPT(E3, 0.01, 0.01, 0.00),
- CTLPT(E3, -0.01, 0.01, 0.00),
- CTLPT(E3, -0.01, -0.01, 0.00)),
- LIST(KV_OPEN));
- right_legs = SWEEPSRF(square, legs_curve, OFF);
- right_to_left = TRANS(VECTOR(0.44, 0.00, 0.00));
- left_legs = right_to_left * right_legs;
- front_right = CEVAL(legs_curve, 1.15);
- front_left = right_to_left * front_right;
- back_right = CEVAL(legs_curve, 3.75);
- back_left = right_to_left * back_right;
- front_crossbar = SWEEPSRF(square, CBEZIER(LIST(front_right, front_left)), OFF);
- back_crossbar = SWEEPSRF(square, CBEZIER(LIST(back_right, back_left)), OFF);
- legs = LIST(right_legs, left_legs, front_crossbar, back_crossbar);
- COLOR(legs, WHITE);
-
- chair = LIST(legs, seat);
- VIEW(chair, TRUE);
-